A logic circuit performs a logical operation on one or more logic inputs and produces a logic output. The logic normally performed in digital circuits is Boolean logic and for example logic gates such as AND, OR, NOR, XOR gates, just to name a few, are primarily implemented in integrated circuits using diodes or transistors. In electronic logic, a logic level is represented by a voltage or current, depending on the type of electronic logic in use. Each logic circuit requires power so that it can source and sink currents to achieve the correct output voltage.
Logic circuitry can for example be implemented as combinatorial, that is combinational, or as sequential logic circuitry. Sequential logic is a type of logic circuit whose output depends not only on the present input but also on the history of the input. This is in contrast to combinational logic, whose output is a function only of the present input. Therefore, sequential logic requires some memory while combinatorial logic does not contain memory elements. In other words, combinatorial logic circuits may be any Boolean circuits where the output is a function of the present input only, without any memory of a previous state.
In a clocked integrated circuit design, a circuit portion consisting of combinatorial circuitry may not receive a clock signal. However, input of data signals and output of corresponding result signals may be implemented using clocked devices such as flip-flops receiving a clock signal.
For combinatorial logic circuitry within a clocked integrated circuit design, data signals are usually applied to the combinatorial logic by means of flip-flop circuits or other types of registers responsive to a rising or positive edge of a clock signal. Other designs may for example use circuits responsive to a falling or negative edge of the clock signal. The signal or signals then propagate through the combinatorial logic circuit (or “logic cloud”) which performs some logic action on the received input signal and outputs a result signal which is a function of the input signal. The result signal is sampled at the next positive clock edge for example by a destination flip-flop for further processing.
Generally, a signal is any time-varying quantity, for example a current or voltage level that may vary over time. Here, data signal and result signal may especially refer to signals carrying a representation of an information, usually a digital representation, for example binary encoded. It should be noted that time-variation of a quantity may include zero variation over time. For example, a signal may comprise a constant voltage level.
According to Moore's law, the performance of very large scale integrated (VLSI) circuit designs doubles approximately every two years. This can for example be achieved by increasing the integrated circuit die size and applying more power to the integrated circuit for doubling the amount of logic circuits or, if possible, doubling the clock frequency applied to the circuit. As schematically shown in FIG. 1, a common way of increasing performance of a data processing circuit of an integrated circuit device which performs logic action using combinatorial logic is to allow for doubling performance by doubling the combinatorial logic circuitry 10, 12 used and associated source flip-flop circuits 14, 16 and destination flip-flop circuits 18, 20, responsive to or triggered by a clock signal generated by a clock signal generator 22, for providing data signals to and receiving result signals from the logic circuit 10, 12.